// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
  },

  onShow() {
    // 这里有两种选择, 要么就是每次进来,接口获取数据,
    // 或者使用个人中心在本地储存共享的数据对象
    this.setData({
      userInfo: wx.getStorageSync('userInfo') || {}
    })
    console.log(wx.getStorageSync('userInfo'));
  },

  async getUserNickName(ev) {
    // change 事件触发了两次, 第一次拿不到数据, 返回
    if (!ev.detail.value) return
    // 发请求更新昵称
    const { code } = await wx.http.put('/userInfo', { nickName: ev.detail.value })
    // 根据更新结果, 后续处理弹窗
    if (code !== 10000) return wx.utils.toast('更新用户昵称失败')
    wx.utils.toast('更新用户昵称成功')
  },

  getUserAvatar(ev) {
    // 得到用户选择的图片在机器上的临时地址
    console.log(ev.detail.avatarUrl);
    // 需要上传到公司后端服务器使用接口 wx.uploadFile
    var upTask = wx.uploadFile({
      // 这个不是htpp,所以要手动写基地址
      url: wx.http.baseURL + '/upload',
      filePath: ev.detail.avatarUrl,
      name: 'file',
      formData: {
        // 这里是跟后端约定的接口写法, 指名要储存头像不是普通图片
        type: 'avatar'
      },
      // 由于拦截器是处理http的,所以上传要自己手动处理token
      header: {
        Authorization: 'Bearer ' + wx.getStorageSync('token')
      },
      success: (result) => {
        console.log(result);
        // 由于后端上传完毕数据是字符串, 所以要先转换再获取数据, 建议log出来进行数据获取比对
        const data = JSON.parse(result.data)
        this.setData({
          'userInfo.avatar': data.data.url
        })
      }
    });

  }
})